(C) 1996 AROS - The Amiga Replacement OS
flags: zero : result is zero negative : result is negative overflow : argument was negative
If the Argument is negative set overflow-flag and return 0. If the Argument is 0 return 0xffffffff.
All other cases:
(ld is the logarithm with base 2) (ln is the logarithm with base e) fnum1 = M * 2^E
ln fnum1 = ln ( M * 2^E ) =
= ln M + ln 2^E =
= ln M + E * ln (2) =
ld M ld 2 = ----- + E * ----- = [ld 2 = 1] ld e ld e
ld M + E = -------- ld e
ld e can be precalculated, of course. For calculating ld M see file intern_spld.c